<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
	<!-- build variants for ARM toolchain builds -->
	<var name="arm" extends="root">
		<varRef ref="default.interfaces"/>
		<varRef ref="default.locations"/>
		
		<!-- tools and scripts -->
		<env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
		<env name="SBS_CHECKLIB" default="$(EPOCTOOLS)/checklib$(DOTEXE)" type="tool"/>
		<set name="CHECKLIB" value="$(SBS_CHECKLIB)"/>
		<env name="CPPFILT" default="$(GCCPREFIX)c++filt$(DOTEXE)" type="tool"/>
		<env name="SBS_EFREEZE" default="$(PERL) $(EPOCTOOLS)/efreeze.pl" type="script"/>
		<set name="EFREEZE" value="$(SBS_EFREEZE)"/>
		<env name="SBS_DEF2DLL" default="$(PERL) $(EPOCTOOLS)/def2dll.pl" type="script"/>
		<set name="DEF2DLLTOOL" value="$(SBS_DEF2DLL)"/>
		<env name="SBS_ELF2E32" default="$(EPOCTOOLS)/elf2e32$(DOTEXE)" type="tool"/>
		<set name="ELF2E32" value="$(SBS_ELF2E32)"/>
		<env name="SBS_PREPDEF" default="$(PERL) $(EPOCTOOLS)/prepdef.pl" type="script"/>
		<set name="PREPDEF" value="$(SBS_PREPDEF)"/>
		<env name="SBS_RCOMP" default="$(EPOCTOOLS)/rcomp$(DOTEXE)" type="tool"/>
		<set name="RCOMP" value="$(SBS_RCOMP)"/>
		<!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds. See the PERTURBSTARTTIME switch for more details.  -->
		<env name="RANSLEEP" default="$(SBS_HOME)/bin/$(HOSTPLATFORM_DIR)/ransleep$(DOTEXE)" type="tool"/>
		<env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
		<env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>
		<env name="SBS_TRANASM" default="$(PERL) $(EPOCTOOLS)/tranasm.pl" type="script"/>
		<set name="TRANASM" value="$(SBS_TRANASM)"/>

		<set name="BASE_ARCH" value="arm"/>		
		<set name="POSTLINKER" value="$(ELF2E32)"/>
		<set name="IMPLIBTOOL" value="$(ELF2E32)"/>
		<set name="DEFGENTOOL" value="$(ELF2E32)"/>

		<!-- targettypes -->
		<set name="TARGET_TYPES" value="ani dll exe exexp fsy implib kdll kexe kext klib ldd lib pdd pdl pdll plugin plugin3 stddll stdexe stdlib textnotifier2 var var2 none"/>
		
		<!-- interfaces -->
		<append name="INTERFACE_TYPES" value="$(TARGET_TYPES)"/>

		<set name="INTERFACE.extension" value="Symbian.extension"/>
		<set name="INTERFACE.kexe" value="Symbian.kexe"/>
		
		<!-- macros -->
		<set name="ARMMACROS.CONFIG" value=""/>
		<set name="ARMMACROS.VAR" value=""/>
		<set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
		<set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
		<set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
		<set name="PLATMACROS.CONFIG" value=""/>
		<set name="PLATMACROS.VAR" value=""/>
		<set name="PLATMACROS.TOOLCHAIN" value=""/>
		
		<set name="CAPABILITY" value=""/>
		<set name="CDEFS" value="__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__=&quot;$(PRODUCT_INCLUDE)&quot; $(MMPDEFS) $(ARMMACROS)"/>
		<set name="CODE_SEGMENT_START" value=""/>
		<set name="DEFAULT_STDCPP_NEWLIB" value="stdnew.dso"/>
		<set name="DEFAULT_SYMBIAN_NEWLIB" value="scppnwdl.dso"/>
		<set name="EPOCSTACKSIZE" value=""/>
		<set name="FIX_EXPORTS_USING_EXP_FILE" value=""/>
		<set name="FULLVARIANTPATH" value="$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
		<set name="IMPLIB_EXTENSION" value="dso"/>
		<set name="LIBRARY_DEBUG" value=""/>
		<set name="LINKER_ENTRYPOINT_PREFIX" value="_"/>
		<set name="MMPDEFS" value=""/>
		<set name="NMAKE" value="nmake"/>
		<set name="NMAKEFLAGS" value="-nologo -x - "/>
		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
		<set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
		<set name="PERTURBSTARTTIME" value=""/>
		<!-- add a random delay before starting armcc or armlink to ease contention for licenses the maximum time to delay in milliseconds. RANSLEEP program must be available.   -->
		<set name="PERTURBMSECS" value="500"/>
		<!-- the maximum time to delay in milliseconds -->
		<set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
		<set name="POSTLINKER_FPU_MAPPING" value="softvfp>softvfp vfpv2>vfpv2 softvfp+vfpv2>vfpv2 softvfp+vfpv3>vfpv3"/>
		<set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
		<set name="REMOVE_UNUSED_SECTIONS" value=""/>
		<set name="RESOLVED_DEFFILE" value=""/>
		<set name="RESOLVED_DEFFILE_SECONDARY" value=""/>
		<set name="RUNTIME_LIBS_PATH" value="$(EPOCROOT)/epoc32/release/armv5/lib"/>
		<set name="SID" value=""/>
		<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
		<set name="SYMBIAN_CC_MESSAGE_OPTION" value="$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)"/>
		<set name="SYMBIAN_LINK_FLAGS" value="$(SYMBIAN_LD_MESSAGE_OPTION) $(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION) $(SYMBIAN_LINK_FLAGS.CONFIG) $(SYMBIAN_LINK_FLAGS.VAR)"/>
		<set name="SYMBIAN_LINK_FLAGS.CONFIG" value=""/>
		<set name="SYMBIAN_LINK_FLAGS.VAR" value=""/>
		<set name="SYSTEMINCLUDE" value=""/>
		<set name="TARGET" value=""/>
		<set name="TREAT_EXES_AS_SHARED" value="1"/>
		<set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>	
	</var>
	
	<var name="v5">
		<set name="TRADITIONAL_PLATFORM" value="ARMV5"/>
		<set name="VARIANTPLATFORM" value="armv5"/>
		<set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV5)"/>
		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV5)"/>
		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
	</var>
	<var name="v6">
		<set name="TRADITIONAL_PLATFORM" value="ARMV6"/>
		<set name="VARIANTPLATFORM" value="armv6"/>
		<set name="PLATMACROS.CONFIG" value="ARMV6"/>
		<set name="ARMMACROS.CONFIG" value="__ARMV6__"/>
		<set name="DEBUG_FORMAT" value="$(CC.DWARF2)"/>
		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV6)"/>
		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV6)"/>
		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV2)"/>
		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV2)"/>
		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
	</var>
	<var name="v7">
		<set name="TRADITIONAL_PLATFORM" value="ARMV7"/>
		<set name="VARIANTPLATFORM" value="armv7"/>
		<set name="PLATMACROS.CONFIG" value="ARMV7"/>
		<set name="ARMMACROS.CONFIG" value="__ARMV7__"/>
		<set name="DEBUG_FORMAT" value="$(CC.DWARF3)"/>
		<set name="TARGET_ARCH_OPTION" value="$(CC.ARMV7)"/>
		<set name="LINKER_ARCH_OPTION" value="$(LD.ARMV7)"/>
		<set name="COMPILER_FPU_DEFAULT" value="$(CC.SOFTVFP_MAYBE_VFPV3)"/>
		<set name="POSTLINKER_FPU_DEFAULT" value="$(PL.SOFTVFP_MAYBE_VFPV3)"/>
		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>
	</var>
	<var name="9e" extends="v5">
		<set name="VARIANTPLATFORM" value="arm9e"/>
		<set name="PLATMACROS.CONFIG" value="ARM9E"/>
		<set name="ARMMACROS.CONFIG" value="__ARM9E__"/>
		<set name="TARGET_ARCH_OPTION" value="--cpu ARM9E"/>
		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
	</var>

	<alias name="armv5_urel" meaning="arm.v5.urel.rvct2_2"/>
	<alias name="armv5_udeb" meaning="arm.v5.udeb.rvct2_2"/>
	<!-- To switch to GCCE for building armv5 code, 
	comment out the two lines above this comment
	and comment in the two lines below this comment -->
	<!-- <alias name="armv5_urel" meaning="arm.v5.urel.gcce4_3_2"/> -->
	<!-- <alias name="armv5_udeb" meaning="arm.v5.udeb.gcce4_3_2"/> -->

	<!-- These aliases are provided to work with the "gcce_armv5" group -->
	<alias name="armv5_urel_gcce4_3_2" meaning="arm.v5.urel.gcce4_3_2"/>
	<alias name="armv5_udeb_gcce4_3_2" meaning="arm.v5.udeb.gcce4_3_2"/>

	<!-- GCCE 4.3.3 aliases -->
	<alias name="armv5_urel_gcce4_3_3" meaning="arm.v5.urel.gcce4_3_3"/>
	<alias name="armv5_udeb_gcce4_3_3" meaning="arm.v5.udeb.gcce4_3_3"/>

	<alias name="armv5_urel_gcce4_4_1" meaning="arm.v5.urel.gcce4_4_1"/>
	<alias name="armv5_udeb_gcce4_4_1" meaning="arm.v5.udeb.gcce4_4_1"/>
	
	<alias name="armv6_urel" meaning="arm.v6.urel.rvct2_2"/>
	<alias name="armv6_udeb" meaning="arm.v6.udeb.rvct2_2"/>
	<alias name="armv7_urel" meaning="arm.v7.urel.rvct4_0"/>
	<alias name="armv7_udeb" meaning="arm.v7.udeb.rvct4_0"/>

	<alias name="arm9e_urel" meaning="arm.9e.urel.rvct2_2"/>
	<alias name="arm9e_udeb" meaning="arm.9e.udeb.rvct2_2"/>

	<group name="armv5">
		<aliasRef ref="armv5_urel"/>
		<aliasRef ref="armv5_udeb"/>
	</group>

	<group name="armv6">
		<aliasRef ref="armv6_urel"/>
		<aliasRef ref="armv6_udeb"/>
	</group>
	<group name="armv7">
		<aliasRef ref="armv7_urel"/>
		<aliasRef ref="armv7_udeb"/>
	</group>

	<group name="arm9e">
		<aliasRef ref="arm9e_urel"/>
		<aliasRef ref="arm9e_udeb"/>
	</group>
	
	<group name="gcce_armv5">
		<aliasRef ref="armv5_urel_gcce4_3_2"/>
		<aliasRef ref="armv5_udeb_gcce4_3_2"/>
	</group>
	
</build>
